翻訳と辞書
Words near each other
・ Bursa of Fabricius
・ Bursa Orhangazi University
・ Bursa Province
・ Bursa quirihorai
・ Bursa ranelloides
・ Burroughs & Chapin
・ Burroughs (crater)
・ Burroughs (surname)
・ Burroughs AN/FST-2 Coordinate Data Transmitting Set
・ Burroughs AN/GSA-51 Radar Course Directing Group
・ Burroughs B1700
・ Burroughs Corporation
・ Burroughs High School
・ Burroughs large systems
・ Burroughs large systems descriptors
Burroughs large systems instruction sets
・ Burroughs MCP
・ Burroughs Medium Systems
・ Burroughs School
・ Burroughs School (Conway, South Carolina)
・ Burroughs v. United States
・ Burroughs Wellcome Fund
・ Burroughston Broch
・ Burrow
・ Burrow (disambiguation)
・ Burrow (Shropshire)
・ Burrow (surname)
・ Burrow fossil
・ Burrow Hall
・ Burrow Head


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Burroughs large systems instruction sets : ウィキペディア英語版
Burroughs large systems instruction sets

The Burroughs large systems instruction sets include the set of valid operations for the Burroughs B5000, B5500, and B5700 computers and the set of valid operations for the Burroughs B6500 and later Burroughs large systems including the current (as of 2006) Unisys Clearpath/MCP systems. These unique machines have a distinctive design and instruction set. Each word of data is associated with a type, and the effect of an operation on that word can depend on the type. Further, the machines are stack based to the point that they had no user-addressable registers.
As you would expect from the description of the run-time data structures used in these systems, Burroughs large systems also have an interesting instruction set. There are less than 200 operators, all of which fit into 8-bit "syllables." Many of these operators are polymorphic depending on the kind of data being acted on as given by the tag. If we ignore the powerful string scanning, transfer, and edit operators, the basic set is only about 120 operators. If we remove the operators reserved for the operating system such as MVST and HALT, the set of operators commonly used by user-level programs is less than 100.
Since there are no programmer-addressable registers, most of the register manipulating operations required in other architectures are not needed, nor are variants for performing operations between pairs of registers, since all operations are applied to the top of the stack. This also makes code files very compact, since operators are zero-address and do not need to include the address of registers or memory locations in the code stream.
For example the B5000 has only one ADD operator. Typical architectures require multiple operators for each data type, for example add.i, add.f, add.d, add.l for integer, float, double, and long data types. The architecture only distinguishes single and double precision numbers – integers are just reals with a zero exponent. When one or both of the operands has a tag of 2, a double precision add is performed, otherwise tag 0 indicates single precision. Thus the tag itself is the equivalent of the operator .i, .f, .d, and .l extension. This also means that the code and data can never be mismatched.
Two operators are important in the handling of on-stack data – VALC and NAMC. These are two-bit operators, 00 being VALC, value call, and 01 being NAMC, name call. The following six bits of the syllable, concatenated with the following syllable, provide the address couple. Thus VALC covers syllable values 0000 to 3FFF and NAMC 4000 to 7FFF.
VALC is another polymorphic operator. If it hits a data word, that word is loaded to the top of stack. If it hits an IRW, that is followed, possibly in a chain of IRWs until a data word is found. If a PCW is found, then a function is entered to compute the value and the VALC does not complete until the function returns.
NAMC simply loads the address couple onto the top of the stack as an IRW (with the tag automatically set to 1).
Static branches (BRUN, BRFL, and BRTR) used two additional syllables of offset. Thus arithmetic operations occupied one syllable, addressing operations (NAMC and VALC) occupied two, branches three, and long literals (LT48) five. As a result, code was much denser (had better entropy) than a conventional RISC architecture in which each operation occupies four bytes. Better code density meant fewer instruction cache misses and hence better performance running large-scale code.
In the following operator explanations remember that A and B are the top two stack registers. Double precision extensions are provided by the X and Y registers; thus the top two double precision operands are given by AX and BY. (Mostly AX and BY is implied by just A and B.)
==Arithmetic operators==
ADD — Add top two stack operands (B := B + A or BY := BY + AX if double precision)

SUBT — Subtract (B - A)

MULT — Multiply with single or double precision result

MULX — Extended multiply with forced double precision result

DIVD — Divide with real result

IDIV — Divide with integer result

RDIV — Return remainder after division

NTIA — Integerize truncated

NTGR — Integerize rounded

NTGD — Integerize rounded with double precision result

CHSN — Change sign

JOIN — Join two singles to form a double

SPLT — Split a double to form two singles

ICVD — Input convert destructive – convert BCD number to binary (for COBOL)

ICVU — Input convert update – convert BCD number to binary (for COBOL)

SNGL — Set to single precision rounded

SNGT — Set to single precision truncated

XTND — Set to double precision

PACD — Pack destructive

PACU — Pack update

USND — Unpack signed destructive

USNU — Unpack signed update

UABD — Unpack absolute destructive

UABU — Unpack, absolute update

SXSN — Set external sign

ROFF — Read and clear overflow flip flop

RTFF — Read true/false flip flop

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Burroughs large systems instruction sets」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.